package com.base.common.alipay.config;

import java.io.FileWriter;
import java.io.IOException;

/**
 * @author Maple.Chen
 * @date 2020年6月10日
 * @description <p>创建支付宝支付接口配置项文件</p>
 */
public class AlipayConfig {
	/**
	 * @Author Maple.Chen
	 * @Description {
	 *     seller user_id & mail is 2088102181434596 & btsxdy1025@sandbox.com
	 *     buyer user_id & mail is 2088102181048083 & gudrot4911@sandbox.com
	 * }
	 * @Date 13:06 2021/3/18
	 **/

	// 商户appid
	public static String APPID = "2016103000777815";
	// 私钥 pkcs8格式的
	public static String RSA_PRIVATE_KEY = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCtxSmctzjwjy4FwiXEUxj/tNgRxhQvTl+1T2KXHkFxv8CNYoB4HMDp9GUudSxS5BooKmOFmwy84C3iS+saZmaUgrVco14jB4QOnvikABJznaW36VwDyqmTIfnJn+qSnssDJRn9kFq2PmDo9W4nKj6LFmCs33NqeqSGsOprabPlxnYU20JaL8kdzBNyi5NrUy0OQPTFvcM6jWQRUVQPNr0O38mX5V+xkZH6k3+xGKIa5Zk1gag2Mujs1Comg9551Iv/jKhJk8jQ/2YCMWKx2Q92lYwQNLLpp2gac2Y33G4ZmoDAXYIQU/dWdZCgiUH0sFrJgmAil5h2+LzinLVXQ7SjAgMBAAECggEBAIflem6SJ9iR0Qc1131bE2De2F/GDgEVBOpxpAPU6I+By5+GmjvVGNWeiQa1Ii3NL9ubkuto36RSme+xObMSxER+mEFTjgpNFWytzHvNhqCeeHyE5q4cb1OerY+OHc/+mXvjJxlTLG38CKQHVNcSRYlWvdJUihmKwmKHtzy7lLIrobDWJYI1Wrj6NfUy6bMTEqgqPf4Nhc8xE/TEMmgtn59ek9QbVMMC1XGriBMYcwG4+yZ/hcvl6uvFVWaLD7SmyLiTj+VLNvcssPUe7b6lSWSZyXbPFUnTzknkhqhRNZz3kmmpNaOMjzA2V+2WCXRrf0sCscowtYM9ikEM4KHLwGECgYEA39FVqXHulkOuOijusO0cw4hBCUcMQhqlW+ueu9WSUMpjeAzmO5jba8swi9h9Oq4o551Q8rh9KMSb5ZnEn9NtAqzq11Zhf/NbfiafSAlCa5W3OSucGMjEBvG1YtdpXqIjZytYs4SpX8eOY2glmy5KSPFNTQaz2Wa8SJJbxk901dMCgYEAxsGXmNDI36Bi/hZgY0t0y0GOWMAVRtyC/uSCZMbLxzaiSxD1CYCZ2y4jUI6Ylh7c3bYgPAon8DV8G1AnB/K1P8WpXvvSauYLFAclbByCHwbHP1NCQYaP/smYvngH3Jp6YncqpCK758lLgIjNG2q+a3B0bNEQiVWUQEEiNkxhU/ECgYBlDqjl/DplAKQvQIIdwsIFC4WKAdloE43sRiQC3bjV37wv3WsrJ6aTMkh2LEbG8xInGiINpf1lJfjaH6bnH1iOJ7NVjXwygJgkCp5KsVubJht3pdgyXJweIo7q1SaPgxgHIkxHqjOrunfxLHomai1CaCmmCMu18qw6/FKR5Rh03wKBgFD1dFGr4datVwVWigaIKtfMKTZfb4tAsR8wZyizjTflOjBHhPhM6N7NqVbb7q1ffunUkMbEAEapEpdxi6SCKXADjJ0DCE/Ayoxq6MRjzGDk+u4BdQCJ1kebSFt1OwaR6f4HulfHSjD83oNJtfpP/aZ31QSqGAlI0a1mmo/xhseRAoGBAIq+CZuMgHd2Gui3/tlpS6E9vN45oKhSZe+TeKRdkPAdSI5+LpaCrDcTH6sVBVpKejuOP3OWCTLzqJKsoNmu1yggZCmxuSkfoQU8vUAT2k0mkasQpuldu4HacbwfGBB4eKi2aVLw0kCewKU7VBBTAhn9A3qF6HmFcrggih0W/JPx";
	// post请求：服务器异步通知页面路径 需http://或者https://格式的完整路径，不能加?id=123这类自定义参数，必须外网可以正常访问
	public static String notify_url = "http://yzsearch.free.idcfengye.com/AlipayTest/notify_url.jsp";  // much thanks for https://www.ngrok.cc/login
	// get请求：页面跳转同步通知页面路径 需http://或者https://格式的完整路径，不能加?id=123这类自定义参数，必须外网可以正常访问 商户可以自定义同步跳转地址
	public static String return_url = "http://yzsearch.free.idcfengye.com/AlipayTest/return_url.jsp";
	// 请求网关地址 
	public static String URL = "https://openapi.alipaydev.com/gateway.do";
	// 编码
	public static String CHARSET = "UTF-8";
	// 返回格式
	public static String FORMAT = "json";
	// 支付宝公钥
	public static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAneUYLAkVfXI4Ep2fcVa4rAYbZAhstaQaFhBoEIjrdV8HNZEB+nH1W9DF9o44eXEiBeBB61bahScw0d6sMaL5Robxw1YENDoWZITVejW3gx+SzQMe1sRvqX+H/7gMJzOvghTX/VLaFzhGaufVjaclPGGveuCPkoyDVrIQcLSzqlnNVPorZ2Lfqvr7kisVv2mtsdmSy60lG0nd77fFhypUOViUcHdEa09fTGcD2jWoPsizNBNLQvNfn1tBiVTp5kaJUITAciHeR92sTlm/x9pjLuQmrsLWS+RHCNxZ8krayDjQvY+VSrRwEohE8pZcG7lZfC70kY3FiB6Ij+qXVYXwWwIDAQAB";
	// 日志记录目录
	public static String log_path = "/log";
	// RSA2
	public static String SIGNTYPE = "RSA2";

	// CSR：与本配置类同一个目录的三个证书文件，要放到部署服务器的上的固定位置，这里写绝对路径，申请证书的配置如下
	/*
	组织/公司：沙箱环境
	部门/单位：edu
	国家：CN
	省份：CN_province
	城市：CN_city
	域名：edu.com
	*/
	// note this: csr公钥证书方式，上传csr失败，问题已记录  2021-03-18 11:25:00
	/*
	证书方式初始化客户端：
	CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
	certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");  //gateway:支付宝网关（固定）https://openapi.alipay.com/gateway.do
	certAlipayRequest.setAppId(app_id);  //APPID 即创建应用后生成,详情见创建应用并获取 APPID
	certAlipayRequest.setPrivateKey(app_privateKey);  //开发者应用私钥，由开发者自己生成
	certAlipayRequest.setFormat("json");  //参数返回格式，只支持 json 格式
	certAlipayRequest.setCharset(charset);  //请求和签名使用的字符编码格式，支持 GBK和 UTF-8
	certAlipayRequest.setSignType(sign_type);  //商户生成签名字符串所使用的签名算法类型，目前支持 RSA2 和 RSA，推荐商家使用 RSA2。
	certAlipayRequest.setCertPath(app_cert_path); //应用公钥证书路径（app_cert_path 文件绝对路径）
	certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path); //支付宝公钥证书文件路径（alipay_cert_path 文件绝对路径）
	certAlipayRequest.setRootCertPath(alipay_root_cert_path);  //支付宝CA根证书文件路径（alipay_root_cert_path 文件绝对路径）
	 */

	/** 
     * 写日志，方便测试（看网站需求，也可以改成把记录存入数据库）
     * @param logging：要写入日志里的文本内容
     */
    public static void logResult(String logging) {
        FileWriter writer = null;
        try {
            writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");
            writer.write(logging);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (writer != null) {
                try {
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
}
